#!/bin/bash

# 定义一个函数用于处理终止信号
stop_processes() {
    echo "收到终止信号，停止所有子进程..."
    pkill -P $$  # 终止当前脚本的所有子进程
    exit 0
}
# 捕获 SIGTERM 信号并调用 stop_processes 函数
trap stop_processes SIGTERM

ros2 topic pub --rate 100 /hz_string std_msgs/msg/String "data: 'hello world'" > /dev/null &
ros2 topic pub --rate 100 /hz_int std_msgs/msg/Int64 "data: 111" > /dev/null &
ros2 topic pub --rate 50 /hz_int_array std_msgs/msg/UInt64MultiArray "data: [1,2,3,4,6,7,8,9,0]" > /dev/null &

ros2 topic pub --rate 100 /hz_float std_msgs/msg/Float64 "data: 222.22" > /dev/null &
ros2 topic pub --rate 50 /hz_float_array std_msgs/msg/Float64MultiArray "data: [1.11,2.22,3.33,4.44,5.55,6.66,7.77,8.88,9.99]" > /dev/null &

# 等待子进程完成或者收到信号
wait